// idnex.js这个文件汇集了所有和vuex相关的代码，别的文件都需要导进来
// 引入vuex,这个vuex是安装过来的原始的vuex
import Vue from 'vue'
import Vuex from 'vuex'
import {OLDING,LEVELUP,LEVELUPUP} from './mutation-type'
import mutations from './mutation'
Vue.use(Vuex);
// 实例化，新建一个仓库
const store = new Vuex.Store({
  // state,类似data，数据放在这里，初始化
  // state不需要写成函数，是因为整个项目中只有一个store.state
  state: {
    age: 17,
    arr1: [1,2,3,4],
    // 会员等级
    level: 5,
    goodsCart: [
      {
        name: 'iphone 12',
        price: 8000,
        num: 12
      },
      {
        name: 'iphone 12 Pro',
        price: 8500,
        num: 9
      },
      {
        name: 'iphone 12 mini',
        price: 7999,
        num: 17
      }
    ]
  },
  // 类似计算属性，在这里进行复杂的运算
  getters: {
    // 和计算属性不同的地方：名字不同，位置不同，记得传state这个参数
    getArr1Length(state) {
      return state.arr1.length
    },
    getTotalPrice(state) {
      let price = 0;
      let finalPrice = 0;
      state.goodsCart.forEach(item => {
        price += item.price * item.num
      });
      finalPrice = price * 0.5
      return finalPrice
    }
  },
  mutations
})

export default store